424. Запрос о целых числах

 

Найти сумму нескольких длинных целых чисел.

 

Вход. Содержит не более 100 строк. Каждая строка содержит длинное целое число, состоящее не более чем из 100 цифр. Последняя строка содержит 0 и не обрабатывается.

 

Выход. Следует вывести сумму всех входных чисел.

 

Пример входа

123456789012345678901234567890

123456789012345678901234567890

123456789012345678901234567890

0

 

Пример выхода

370370367037037036703703703670

 

 

РЕШЕНИЕ

длинная арифметика

 

Анализ алгоритма

Следует воспользоваться классом BigInteger и сложить все входные числа.

 

Реализация алгоритма

Установим длину чисел равной 110.

 

#define MAXLENGTH 110

 

В переменной res накапливаем сумму. Строку цифр с очередным входным числом запоминаем в массиве s и преобразовываем в длинное целое temp. Пока не встретилась строка, содержащая 0, присваиваем переменной res значение суммы res и temp.

 

BigInteger res("0"),temp("0");

char s[MAXLENGTH];

while(scanf("%s",s),s[0]!='0')

{

  temp = BigInteger(s);

  res = res + temp;

}

res.print(); printf("\n");